CPE 426 Computer Networks
Chapter 4:
Text Chapter 21: IP Address
Text Chapter 22: IP Datagram
TOPICS
Chapter 21: IP Address
Addressing Scheme/Prefix&Suffix: 21.1-21.8
Subnetting and Mask: 21.9-21.13
Special IP Address: 21.14
Router IP Addressing/Multi-Homed Host: 21.17-21.18
BREAK
Chapter 22: IP Datagram
Header Format: 22.1-22.5
Datagram Forwarding: 22.6-22.10
Encapsulation: 22.11-22.12
MTU and Fragmentation: 22.13-22.17
สรุปบทที่ 20
การเชื่อมต่อระหว่าง Network เข้าด้วยก ัน จะใช้อุปกรณ์ชื่อ
Router ซึ่งทํางานใน Layer 3
แต่ละ Interface ของ Router จะเชื่อมต่อกับแต่ละ Network และต ้อง Run Network Protocol ตาม Network ที่มันไปเชื่อมต่ออยู่
เราจะต้องมี Global Address ที่ไปขึ้นก ับ Address ของแต่ละ
Network ที่จะบ่งบอกหมายเลข Host ในการส่งข้อมูลระหว่าง
สอง Host ที่อยู่คนละ Network
Global Address นี้ต ้องสามารถ Mapping กับ Network Address ที่กําหนด
Host ในแต่ละ Network ได ้ (ต ้องมีขบวนการแปลง Address)
อย่างไรก็ตาม ในการส่งข ้อมูลภายใน Network ยังคงอ ้างอิงกับ Address ตาม Protocol ของ Network นั้นๆ ซึ่ง Address นี้จะมี Scope เพียงเฉพาะ
ใน Network หนึ่งๆ เท่านั้น
เมื่อมีระบบ Address ใหม่ จําเป็นต้องมี Internet Protocol ที่จะ
กําหนด Global Address นี้
Protocol นี้ต ้อง Run ที่ทั้ง Host และ Router
สรุปบทที่ 20
Internetworking Protocol ที่นิยมที่สุดคือ IP หรือ Internet Protocol (ใช้ The Internet)
Global Address ที่กําหนดหมายเลข Host คือ IP Address
IP อยู่ใน Layer 3 และต้อง Run ที่ท ั้ง Host และ Router
การส่งข ้อมูลให ้ถึง Host ที่หมาย จะกําหนดด ้วย IP Address ปลายทาง
แม ้ว่าจะมีการส่งข ้อมูลผ่านหลาย NW เราไม่จําเป็นต ้องรู ้ NW Address ของ
แต่ละ Network ที่ผ่าน เพราะจะมีขบวนการ Mapping โดยอัตโนมัติ (ARP)
เรามองเห็นแค่ IP Layer ส่วน Layer ล่างจะ Transparent กับ User เสมือน
เราเชื่อมต่อกับ Internet อย่างเดียว
เป็น Virtual Network
ในการส่งข้อมูลจะแบ่งเป็นสอง Step
1. ส่ง Packet ไปให ้ถึง NW ปลายทางก่อน โดย Router จะดูจากส่วน
Network ID ของ IP Address
2. เมื่อ Packet ไปถึง Network ปลายทาง จะเป็นหน ้าที่ของ Network Protocol นั้นๆทําการส่งไปให ้ถึง Host ใน Network นั้น ในกรณีนี้ ส่วนของ
Host ID ใน IP Address จะถูก Map เข ้ากับระบบ Address ของ Network นั้น (ใน LAN จะ MAP กับ MAC Address, โดยใช ้ ARP)
Network Protocol ใน Network นั้นๆจะรับผิดชอบส่ง Packet จาก Router ไป
ยัง Host ปลายทาง
Chapter 21: IP Addressing
IP Address เป็นต ัวกําหนด End System
(Host) ตลอดท ั้งเครือข่าย Internet
ดังนั้นมันจะต ้องเป็น Global Address ขณะที่ MAC
Address จะหมดอายุเมื่อออกจาก LAN
เป็นแค่ Local Address ใน LAN
เครื่องสองเครื่องในเครือข่าย จะมีหมายเลขเดียวกัน
ไม่ได ้
เครื่องที่ต่อใน LAN ออก Internet จะมีทั้ง MAC Address และ
IP Address ที่ Match กัน
Protocol ARP จะกล่าวในบทที่ 23
ปัจจุบ ันใช้ตามมาตรฐานของ IPv4
Address ขนาด 32 บิต
เรียก IP Address, Internet Address หรือ Internet Protocol Address
กําหนดหมายเลขเครื่องได ้โดยไม่เกี่ยวข ้องกับ MAC
Address
Ch. 21: 21.4 IP Address
Hierarchy
แต่ละ IP Address ขนาด 32 บ ิต จะถูก
แบ่งออกเป็นสองส่วน
ส่วนต ้น เรียก Prefix เป็นตัวกําหนดหมายเลข
Network (Network ID)
ส่วนที่เหลือ เรียก Suffix เป็นตัวกําหนด
หมายเลข Host ใน Network นั้นๆ
หมายเลข Host ใน Network เดียวกันจะซํ้ากันไม่ได ้
หมายเลข Host ที่อยู่คนละ Network สามารถซํ้ากัน
ได ้ เพราะส่วน Prefix (Net ID) นั้นไม่เหมือนกัน
32 Bits
Prefix
Suffix
Ch. 21: 21.5 Original Classful IP
Addressing
Ch. 21: 21.6 Dotted Decimal
Notation
ใน 32 บ ิต IP Address จะถูกแบ่งเป็นสี่
ส่วน ส่วนละ 8 บิต
แต่ละส่วนจะเขียนเป็นเลขฐาน 10 มีค่าได ้
ระหว่าง 0 – 255
แต่ละส่วนจะเขียนต่อกัน ขั้นด ้วย “จุด”
เรียก Dotted Decimal Notation
Address ตํ่าสุดคือ 0.0.0.0
Address สูงสุดคือ 255.255.255.255
แต่ละ Class สามารถสังเกตุได ้จาก Octet แรก
ของ IP Address
Ch. 21: 21.7 Division of Address
Space
ส ังเกตุว่า แม้ว่า Class A จะมีแค่ 128
Network แต่ม ันประกอบด้วยครึ่งหนึ่ง
ของ Address Space ท ั้งหมด
Ch. 21: 21.8 Authority for
Address
องค ์กรที่ดูแลจ ัดการเรื่อง IP Address
คือ ICANN
Internet Corporation for Assigned Names
and Numbers
ปกต ิ ICANN จะกําหนดให้ Registrar
เป็นผู้จ ัดสรรในแต่ละภูมิภาคอีกทีหนึ่ง
Registrar จะจ ัดสรร Block ของ IP
Address ให้แก่ ISP แต่ละราย
ผู ้ใช ้งานจะได ้รับ IP Address จาก ISP อีกที
Summary of IP Classful
octet 1
octet 2
octet 3
octet 4
Range of addresses
Network ID
Host ID
1.0.0.0 to
Class A:
1 to 127
0 to 255
0 to 255
0 to 255
127.255.255.255
Network ID
Host ID
Class B:
128 to 191
0 to 255
0 to 255
0 to 255
128.0.0.0 to
191.255.255.255
Network ID
Host ID
Class C:
192.0.0.0 to
192 to 223
0 to 255
0 to 255
1 to 254
223.255.255.255
Multicast address
Class D (multicast):
224 to 239
0 to 255
0 to 255
1 to 254
224.0.0.0 to
239.255.255.255
Class E (reserved):
240 to 255
0 to 255
0 to 255
1 to 254
240.0.0.0 to
255.255.255.255
Ch. 21: 21.9 Subnet and
Classless Addressing
การแบ่ง Class ทําให้การใช้งาน IP Address ขาด
ประสิทธิภาพ
เรามีคอมพิวเตอร์ 15 เครื่อง ดังนั้นต ้องใช ้ Class C ซึ่งรองรับได ้
256 (-2) เครื่อง แต่ใช ้จริงแค่ 15 ที่เหลือ คนอื่นใช ้ไม่ได ้ เพราะเป็น
คนละ Network กับเรา
ปัจจุบ ัน IP Class A และ B ได้ถูกใช้งานหมดแล้ว
เหลือ Class C จํานวนเล็กน้อย และขอได้ยากมาก
เพื่อแก้ปัญหา IP Address ไม่พอใช้ มีสองวิธีที่คิดขึ้น
และคล้ายก ัน คือ
Subnet Addressing : การแบ่ง Network เป็น NW ย่อย
Classless Addressing : การแบ่ง NW โดยกําหนด Prefix เอง
กล่าวคือ ไม่มีการกําหนด Class แต่สามารถกําหนดบิตของ Prefix และ Suffix ได ้ตามต ้องการ
Ch. 21: 21.9 Subnet and
Classless Addressing
ต ัวอย่าง Class C เด ิม (24 Bit Prefix)
แบ่งเป็นสี่ส่วน โดยเพิ่ม Prefix อีก 2 บิต
(Suffix ถูกลดลง 2 บิต เหลือ 6 บิต)
Ch. 21: 21.10 Address Masks
การที่เรากําหนด Prefix เองทําให้ IP Address ไม่มี
Class อีกต่อไป
เรียก Classless
ในการนี้ เราจะต้องบ่งบอกเองว่าส่วนไหนเป็น Prefix
และส่วนใหนเป็น Suffix
กําหนดจาก ค่า 32 Bit เช่นก ันเรียก Address Mask
(เมื่อก่อนเรียก Subnet Mask)
ส่วนต ้น ที่กําหนด Prefix ให ้เป็นบิต ‘1’
ต ้องเขียนติดต่อกัน
ส่วนที่เหลือเป็น Bit ‘0’ กําหนด Suffix เขียนติดกัน
การหา Network ID(Prefix) ทําได้โดยทํา Bitwise
AND ระหว่าง IP Address ก ับ Mask
N == (D & M)
Ch. 21: 21.10 Address Masks
Example:
Consider the following 32-bit network prefix:
10000000 00001010 00000000 00000000 = 128.10.0.0
Consider a 32-bit mask:
11111111 11111111 00000000 00000000 = 255.255.0.0
Consider a 32-bit destination address, which has a
10000000 00001010 00000010 00000011 = 128.10.2.3
A logical and between the destination address and the address mask extracts the high-order 16-bits
10000000 00001010 00000000 00000000 = 128.10.0.0
Ch. 21: 21.11 CIDR Notations
ปกต ิ Address Mask เขียนในล ักษณะ Dotted
Decimal Format เช่นเดียวก ันก ับ IP
Address
เช่น 1111 1111 1111 1111 1111 1111 1100 0000
จะเขียนเป็น 255.255.255.192
เพื่อให้ง่ายในการอ่าน แทนที่เราจะเขียน IP
Address คู่ก ับ Address Mask เราเขียน IP
Address ตามด้วยจํานวนบิตที่กําหนด Suffix
ในรูป
ddd.ddd.ddd.ddd / m
เช่น 192.5.48.69 / 26 มีความหมายเดียวกับ IP
Address 192.5.48.69 และ Mask 255.255.255.192
เรียก CIDR Notation
Classless Inter-Domain Routing
CIDR
Ch. 21: 21.12 CIDR Example
สมมุต ิ ISP มี Block ของ IP Address
128.211.0.0 / 16
ถ้า ISP มีลูกค้าสองราย แต่ละรายต้องการ 12
และ 9 IP Address ซึ่ง ISP สามารถกําหนด
Prefix ให้แก่ลูกค้าท ั้งสองด ังนี้
128.211.0.16 / 28
128.211.0.32 /28
แม้ว่าลูกค้าท ั้งสอง จะใช้ขนาดของ Mask
เท่าก ัน แต่ Prefix จะต่างก ันคือ
10000000 11010011 00000000 0001 0000
10000000 11010011 00000000 0010 0000
Ch. 21: 21.13 CIDR Host Address
ในแต่ละละ Block ของ CIDR เรา
สามารถกําหนด Host Address จากส่วน
Suffix
จํานวน Host ในแต่ละ Block เท่ากับ 2suffix bit -2
เหตุผลที่ต ้องลบสอง คือ Address แรก และ
Address สุดท ้าย ของ Host จะไม่ใช ้
Address แรก คือเมื่อ Bit ของ Host เป็นศูนย์ทั้งหมด
เนื่องจาก IP Address ของ Host นี้จะเหมือนกับ
Network Address และป้องกันปัญหาใน Berkeley
Broadcast Address Form
Address สุดท ้าย คือเมื่อ Bit ของ Host เป็นหนึ่ง
ทั้งหมด จะถูกกันไว ้เป็น Address พิเศษสําหรับ
Broadcast ใน Network นั้น
Ch. 21: 21.13 CIDR Host Address
Example: 28 Bit Prefix
Ch. 21: 21.14 Special IP Address
Network Address
Address ที่ประกอบด ้วย Host Bit เป็น ‘0’ ทั้งหมดจะถูก
Reserved ไว ้สําหรับ Network Address
128.211.0.16/28 หมายถึง Network ไม่ใช่ IP Address
Directed Broadcast Address
Address ที่ประกอบด ้วย Host Bit เป็น ‘1’ ทั้งหมดจะถูก
Reserved ไว ้สําหรับส่ง Packet ไปให ้กับทุก Host ใน
Physical Network นั้น
เมื่อ Packet นี้ถูกส่ง จะส่งไป Copy เดียว ผ่าน Internet จนกระทั่งถึง Network ปลายทาง จากนั้น Packet จะถูกส่ง
ต่อไปให ้ทุกๆ Host ใน NW ปลายทาง
Ch. 21: 21.14 Special IP Address
Limited Broadcast Address
เป็นการ Broadcast กับเครื่องที่ต่อเฉพาะกับ Link นั้น จะ
ใช ้ในตอนที่ระบบ Start และยังไม่มี IP Address เป็น
ของตัวเอง
Address คือ 255.255.255.255 (All ‘1’)
IP จะ Broadcast Packet ที่ใช ้ Address นี้ไปตลอดทั่ว
Local Network
This Computer Address
กําหนดโดย Address ที่เป็น ‘0’ ทั้งหมด
คือ 0.0.0.0
ใช ้ในการกําหนด Source IP Address สําหรับเครื่องที่ยัง
ไม่รู ้ IP Address ของตนเอง
ใช ้ใน Protocol DHCP เมื่อคอมพิวเตอร์เริ่ม Boot และขอ IP
Address จาก DHCP Server
Ch. 21: 21.14 Special IP Address
Loopback Address
ใช ้สําหรับทดสอบการสื่อสารของสอง Network
Application บนเครื่องเดียวกัน โดยไม่ต ้องผ่าน
Network
IP Reserver Network Prefix 127/8 สําหรับใช ้
กับ Loopback
ปกติจะใช ้ Host number 1: 127.0.0.1
Packet Loopback จะไม่ออกมานอกเครื่อง
Ch. 21: 21.15 Summary Special
IP Address
Ch. 21: 21.16 The Berkeley
Broadcast Address Form
ในการพ ัฒนา TCP/IP บน UNIX ยุคแรกๆ
โดย University of California at Berkeley
(BSD UNIX) ได้ใช้ Directed Broadcast
Address ที่ไม่ได้เป็นมาตรฐาน
กล่าวคือใช ้ Host Bit ‘0’ ทั้งหมด กําหนดเป็น Directed Broadcast Address
รู ้จักกันในนาม ‘Berkeley Broadcast’
ยังมีอุปกรณ์รุ่นเก่าที่ยังใช ้งานอยู่ที่ใช ้ Broadcast Address นี้
Network Manager จะต ้องระวัง และเลือกใช ้
Ch. 21: 21.17 Router and IP
Address
นอกเหนือจากการกําหนด IP Address
ให้แก่ Host แล้ว อุปกรณ์ Router ต้อง
กําหนด IP Address ด้วย
Router ต่อเข ้ากับหลาย Physical Network
แต่ละ Interface ของ Router ต ้องใช ้ Prefix
ตาม Network ที่มาต่อ
แต่ละ Interface ของ Router จะใช ้ Host ID
(Suffix) ที่ไม่ซํ้ากับ Network ที่มาต่อนั้น
Ch. 21: 21.17 Router and IP
Address
Ch. 21: 21.18 Multi-Homed Host
คอมพ ิวเตอร ์ที่มีมากกว่าหนึ่ง Network Card
(LAN Card หรือ Network Card อื่น)
สามารถเชื่อมต่อได้มากกว่าหนึ่ง Network
และสามารถมี IP Address ได้มากกว่าหนึ่ง
เบอร์
โดยแต่ละเบอร์มี Prefix ตาม Network ที่มาต่อ
เรียก Multi-Homed
ปกติจะใช ้ในการเพิ่มความเชื่อถือได ้ของอุปกรณ์ในกรณี
ที่ Network หนึ่ง Down
ยังเป็นการเพิ่มประส ิทธิภาพด ้วย
สามารถใช ้งานเป็น Gateway หรือทํา Firewall หรือทํา
เป็น Router ได ้ ถ ้ามี Software ที่ถูกต ้อง
Ch. 21: 21.18 Multi-Homed Host
152.47.0.0/16
152.47.204.5
200.123.234.1
200.123.234.0/24
TOPICS
Chapter 22: IP Datagram
Header Format: 22.1-22.5
Datagram Forwarding: 22.6-22.10
Encapsulation: 22.11-22.12
MTU and Fragmentation: 22.13-22.17
Chapter 22: IP Datagram
จุดประสงค์ของ Internetworking เพื่อที่จะให้ Program ที่ Run อยู่บนคอมพิวเตอร์หนึ่ง สามารถส่ง Packet สื่อสารได้ก ับอีก
Program หนึ่งที่อยู่ต่างคอมพิวเตอร์ก ัน
การอกแบบ Internetworking ที่ดี การสื่อสารด ังกล่าวจะเป็น
Transparent และไม่ต้องคํานึงถึง Hardware เชื่อมต่อที่
แตกต่างก ัน
Internet ควรจะให้ Service แบบใดแก่ Application Program เหล่านี้ : Connectionless หรือ Connection-Oriented
ผู้ออกแบบ TCP/IP ตกลงเลือก Service ท ั้งสองประเภท
Connectionless: User Datagram Protocol(UDP)
Connection Oriented: Transport Control Protocol(TCP)
อย่างไรก็ตาม วิธีการส่ง Packet จะใช้แบบ Connectionless หรือ Datagram โดยถ้าผู้ใช้ต้องการความเชื่อถือในการส่งข้อมูล
สามารถผนวกวิธีการของ Connection Oriented(TCP) เข้าก ับ
การส่ง Packet ที่เป็นแบบ Datagram (IP) ได้
Ch22: 22.3 Virtual Packet
การส่งข้อมูลที่เป็นแบบ Datagram หรือ Connectionless ภายใน Network เป็นการปร ับปรุงมาจาก Packet Switching Network
โดยผู ้ส่งสามารถส่งแต่ละ Packet ผ่าน Internet และแต่ละ Packet จะ
เดินทางโดยไม่ขึ้นต่อกัน
ตัวการที่สําคัญในการส่งผ่าน Packet คือ Router โดยที่ Router จะดู
Address ปลายทางและตัดสินใจว่าควรจะส่ง Packet ให ้ Router ตัวถัดไป
ตัวใด
Router รับผิดชอบเพียงเท่านี้ คือส่ง Packet ให ้ Router ตัวถัดไป (หรือส่งไปให ้
Destination ถ ้าเป็น Router ตัวสุดท ้ายของเส ้นทาง)
เนื่องจาก Router อาจจะเชื่อมต่อ Network ที่ต่างกันและ Address ของแต่
ละ Network ต่างกัน ซึ่ง Router ไม่สามารถที่จะเปลี่ยน Address Format ได ้ทุกครั้งที่ผ่านแต่ละ Network เพราะผู ้รับปลายทางอาจจะใช ้ Address Format ที่ต่างออกไปอีก
ในการนี้ Internet จะต ้องออกแบบ Packet Format ใหม่ และใช ้ Address ที่
เป็นหนึ่งเดียว (คือ IP Address) กล่าวคือ Internet Protocol จะต ้องวางบน
Network Layer ของแต่ละ Network อีกทีหนึ่ง
ผลลัพธ์คือ Universal Virtual Packet ที่สามารถส่งผ่าน Network อะไรก็ได ้
Ch22: 22.4 IP Datagram
ใน TCP/IP จะใช้คําว่า IP Datagram ในการ
อ้างถึง Packet ของ Internet ซึ่ง
ประกอบด้วย Payload ที่ได้มาจาก Layer บน
และส่วนห ัวที่เรียก IP Header
ขนาดของ Payload ไม่ได้กําหนดตายต ัว
ขึ้นอยู่ก ับ Application ที่ใช้
IPv4 สามารถมี Payload ได ้ตั้งแต่ 1 Octet จนถึงสูงสุด
64K Octet(65535: รวมส่วนหัวด ้วย)
ขนาดของ Header ปกติจะคงที่คือ 20 Octet แต่
สามารถขยายได ้ (ส่วนของ Option)
Ch22: 22.5 IP Datagram Header
Format (IPv4)
VERS. กําหนด Version ในที่นี้คือ 0100 B
H.LEN. กําหนดความยาวของ Header มี
หน่วยเป็น 32 Bit Word ถ้าไม่มี Option ค่านี้
คือ 0101 B
Ch22: 22.5 IP Datagram Header
Format (IPv4)
SERVICE TYPE. กําหนด Class ของ Service
ปกติไม่ใช้ (จะพูดในเรื่อง QoS)
TOTAL LENGTH. ความยาวเป็น Byte รวมท ั้ง
ส่วนห ัว
Ch22: 22.5 IP Datagram Header
Format (IPv4)
IDENTIFICATION. กําหนด Sequence Number ใช้
ในกรณีที่มีการ Fragmentation
FLAGS. เป็นต ัวกําหนดว่าจะยอมให้ทํา Fragment ได้
หรือไม่ และกําหนดFragment สุดท้าย
Ch22: 22.5 IP Datagram Header
Format (IPv4)
FRAGMENT OFFSET. ค่าจะถูกคูณด้วย 8 เพื่อบ่งบ่งตําแหน่ง
ของ Datagramนี้ใน Datagram ก่อน Fragment
TIME TO LIVE. กําหนดโดยผู้ส่ง โดยจะเป็นต ัวกําจ ัด Packet ใน
กรณีที่มี Loop ซึ่งค่านี้จะถูกลดลงหนึ่งทุกคร ั้งที่ผ่าน Router เมื่อ
ค่านี้เป็นศูนย์ Datagram นี้จะถูกโยนทิ้ง และมีการส่ง Error Message กล ับไปย ังผู้ส่ง
Ch22: 22.5 IP Datagram Header
Format (IPv4)
TYPE. กําหนดชนิด(Protocol) ของ Payload
ที่อยู่ข้างใน (ที่อยู่ Layer บนถ ัดไป)
HEADER CHECKSUM. ผลบวกของ 16 Bit
Word และ Complement
Ch22: 22.5 IP Datagram Header
Format (IPv4)
SOURCE & DESTINATION IP ADDRESS. กําหนดเครื่องต้น
ทางและปลายทาง ไม่ใช่ Address ของ Router
IP OPTIONS. ใช้ในการควบคุมการทํา Routing ปกติจะไม่ใช้
PADDING. ด้วยศูนย์เพื่อให้ครบ 32 Bit Word
Ch22: 22.6 IP Datagram
Forwarding
IP Router จะใช้ Forwarding Table (Routing
Table) ซึ่งสามารถจะ Update ได้เป็นระยะ
จะเป็นลักษณะของ Next-hop Forwarding
Router 2
Ch22: 22.7 Network Prefix
Extraction
จากที่กล่าวแล้ว Router จะดูแค่ส่วน Prefix ของ IP Address(NW
ID) จากน ั้นจะเปรียบเทียบก ับตาราง Routing Table เพื่อหา
เส้นทางในการส่งข้อมูลต่อไป ด ังนี้
ในแต่ละแถวของตาราง Routing Table ตัว Router จะนํา Mask จากแถวนั้น
มาทําการ Bitwise AND กับ IP Address ปลายทางที่ได ้จากส่วน Header ของ IP Datagram และเปรียบเทียบกับค่าในตาราง ถ ้าค่า Prefix ที่ได ้ตรงกัน
กับค่าจากแถวนั้นในตาราง ถือว่า Match และข ้อมูลจะถูกส่งไปในทิศทางนั้น
ยกตัวอย่าง มี Datagram ต ้องการส่งไปที่ 192.4.10.3 ส่งมาที่ Router R2
ในแถวแรกของตาราง เมื่อทําการ AND เราได ้ 255.0.0.0 & 192.4.10.3 = 192.0.0.0
ซึ่งไม่ตรงกับ 30.0.0.0
แถวที่สองจะได ้ 192.0.0.0 เช่นกันและไม่ตรงกับ 40.0.0.0
แถวที่สามจะได ้ 192.4.0.0 และไม่ตรงกับ 128.1.0.0
แถวที่สี่จะได ้ 192.4.10.0 ซึ่งตรงหรือ Match ดังนั้นข ้อมูลจุถูกส่งออกไปที่ 128.1.0.9
คือ IP Address ของ Interface ของ R3 ที่ต่อกัน เรียกว่า Next Hop Address
การส่งให ้ Router ตัวถัดไปนั้น จะไม่มีการเปลี่ยนแปลง IP Address ของ
Datagram แต่จะส่งโดยใช ้ Local Network Address แทน เนื่องจาก Interface ของ Router ที่ต่อตัวถัดไป จะอยู่ใน NW เดียวกันกับ Router ตัวที่ส่ง
ถ ้าเป็น Direct Connect ตัว Router สามารถส่งข ้อมูลให ้กับ Host ได ้โดยตรง ไม่
ต ้องส่งให ้กับ Router ตัวถัดไป
Ch22: 22.8 Longest Prefix Match
ในทางปฎิบ ัติ ตาราง Routing Table อาจจะมีขนาด
ใหญ่ และ Routing Algorithm ค่อนข้างสล ับซับซ้อน
การส่งผ่านข้อมูลจะมีข้อกําหนดเพิ่มเติมที่สําค ัญด ังนี้
ถ ้าไม่มี Prefix ใด Match เลยในตาราง ข ้อมูลจะส่งไม่ได ้ ดังนั้นแถว
สุดท ้ายมักจะกําหนด ‘Default Route’ โดยใช ้ Address 0.0.0.0
และ Mask เป็น 0.0.0.0 (Always Match)
ผู ้ส่งสามารถกําหนด Route เองได ้ โดยกําหนดเส ้นทางส่งข ้อมูล
ผ่าน Interface ต่างๆในส่วน Option ของ Header
ในกรณีที่มีการ Match Prefix มากกว่าหนึ่งอัน ตัว Router จะส่ง
ข ้อมูลในทิศทางที่มีการ Match Prefix ที่ยาวที่สุด
ดังนั้นในตาราง Routing Table, Software จะทําการเรียงตารางใหม่
เริ่มจากแถวที่มี Prefix มากที่สุดก่อน
เช่นในตารางมีสอง Prefix คือ 128.10.0.0/16 และ 128.10.2.0/24
ถ ้ามี Datagram ที่ต ้องการส่งไปที่ 128.10.2.3 เข ้ามา มันจะถูกส่งไป
ตามแถวที่กําหนดจาก 128.10.2.0/24 เพราะมีการ Match ยาวกว่า
Longest Prefix Match
192.168.7.1
172.35.147.2
192.168.7.0/24
172.35.0.0/16
192.168.7.123
Destination
Mask
Next Hop
172.35.74.98
40.30.0.0
255.255.0.0
172.35.147.2
212.210.17.65
128.0.0.0
255.0.0.0
192.168.7.1
195.89.36.0
255.255.255.0
192.168.7.1
128.10.0.0
255.255.0.0
172.35.147.2
212.210.17.64/26
212.210.17.64 255.255.255.192
Directed
172.35.0.0
255.255.0.0
Directed
192.168.7.0
255.255.255.0
Directed
212.210.17.120
128.10.2.0
255.255.255.0
192.168.7.1
0.0.0.0
0.0.0.0
212.210.17.120
Ch22: 22.10 Best Effort Delivery
การส่ง Datagram ใน IP Network จะเป็นล ักษณะ
Best-Effort Delivery คือส่งเท่าที่จะสามารถส่งได้
อย่างไรก็ตามสิ่งต่างๆเหล่านี้สามารถเกิดขึ้นได้
Datagram Duplication
Delayed หรือ Out-of-Order Delivery
Data Corruption
Datagram Loss
กล่าวคือ จะมี Error เกิดขึ้นได้เสมอในการส่งข้อมูล
ผ่าน Internet
ในการนี้ มาตรฐาน TCP/IP ได้ออกแบบ Protocol อีก
Layer หนึ่งเพื่อที่จะมาจ ัดการก ับเรื่องเหล่านี้ (TCP)
ขึ้นอยู่กับผู ้ใช ้งาน จะเลือกแค่ Best-Effort Delivery หรือต ้องการ
Protocol เสริมที่จะช่วยจัดการกับ Error
UDP/IP หรือ TCP/IP
Ch22: 22.11 IP Encapsulation
ในการส่ง Datagram ผ่านแต่ละ Network จําเป็นที่จะต้องบรรจุ
Datagram ลงใน Network Protocol ที่กําล ังผ่าน
เรียกว่าการทํา Encapsulation
เมื่อ Encapsulated Datagram ผ่านจาก Network หนึ่งไปย ังอีก
Network หนึ่ง (ผ่าน Router) ม ันจะถูก Decapsulated และถูก
Encapsulate ใหม่ตาม Protocol ของ Network ถ ัดไป
การ Decapsulate นั้น จะต ้องรู ้ว่ามันเป็น IP Datagram Encapsulate มิฉะนั้นแล ้ว
การทํางานจะผิดพลาด เนื่องจากแต่ละ Network อาจจะมีการ Encapsulate หลาย
Protocol
ดังนั้นที่ส่วนหัวของ Network Protocol ที่ทําการ Encapsulate จะต ้องมี Code กํากับ
บอกชนิดของ Payload
ใน Ethernet Frame ถ ้าเป็น IP Datagram บรรจุอยู่ใน MAC Frame จะใช ้ Ethertype 0x0800
นอกจากนี้แล ้ว การ Encapsulate ยังต ้องการการกําหนด Network Address ของ
Router ที่ Datagram จะถูกส่งออกไปยัง NW ถัดไป (หรือ NW Address ของ Host ในกรณีที่ Datagram ไปถึงที่หมาย)
อย่าลืมว่า Router กําหนดแค่ IP Address ของ Next-Hop Router ไม่ได ้กําหนด Network Address ของ Next-Hop Router
เราจะใช ้ Protocol ชื่อ ARP มาทําการหา Network Address จาก IP Address ของ Next-Hop Router (Interface)
กรณีของ Ethernet Network, ARP จะใช ้ในการหา MAC Address จาก IP Address ที่
กําหนด รายละเอียดจะอยู่ในบทถัดไป
Ch22: 22.11 IP Encapsulation
LAN
IP Addr ต้นทางและปลายทาง
ห้ามเปลี่ยน แตะไม่ได้
192.168.7.1
192.168.7.0/24
FR
Next Hop
192.168.7.123
MAC Addr = ?
ATM
192.168.7.123
X.25
Ch22: 22.12 Transmission Across
An Internet
การส่ง Datagram
ใน Internet จะถูก
Encapsulate-
Decapsulate เป็น
ทอดๆ ตาม
Protocol ในแต่ละ
Network ที่ผ่าน
มีการกําหนด Code
ของ Payload ที่ส่วนหัว
ของแต่ละ Network
Protocol
มีการหา Network
Address ของ Router
ตัวถัดไป ที่ตรงกับ IP
Address โดยใช ้ ARP
Ch22: 22.13-14 MTU and Datagram
Fragmentation/Reassembly
ขนาดของ Data ที่จะใส่ใน Frame สูงสุดที่
สามารถส่งผ่านได้เรียก MTU: Maximum
Transfer Unit
แต่ละ Network จะกําหนดค่า MTU ต่างกัน
เป็นไปได ้ว่า Datagram ที่ส่ง อาจจะมีขนาดใหญ่กว่าค่า
MTU ของ NW นั้น
จะต ้องมีการแตก Datagram เป็นส่วนสั้นๆ เรียก Fragment เพื่อ
จะสามารถส่งผ่านไปได ้ ขบวนการนี้เรียก Fragmentation
Ch22: 22.13-14 MTU and Datagram
Fragmentation/Reassembly
ในแต่ละ Fragment ของ Datagram จะมี Format
เหมือน Datagram ปกติ ส่วน Header ของ
Fragment จะกําหนด IP ต้นทางและปลายทางเหมือน
Header เดิม ในส่วน Field ‘FLAG’ จะบ่งบอกว่านี้คือ
Fragment ไม่ใช่ IP Datagram เต็มๆ และส่วนใน
‘FRAGMENT OFFSET’ จะบ่งบอกว่า Fragment นี้อยู่
ที่ส่วนใหนของ Datagram เดิม
การประกอบคืน (Reassembly) กําหนดให ้กระทําที่ Host ปลายทาง
เพราะ Host ปลายทางสามารถรู ้ได ้ว่า Fragment ได ้ครบหรือไม่
ปกติ Router จะไม่สนใจว่า Datagram ที่ส่งเป็น Fragment หรือไม่
IP Header Flags
จากที่กล่าวมาแล้ว ส่วนของ Header จะ
ประกอบด้วย FLAG ขนาด 3 บิต ใช้ในกรณีที่
ทํา Fragment ด ังนี้
Bit 0: จะถูก Reserve และจะต ้องมีค่าเป็น 0
Bit 1: Don’t Fragment(DF) ถ ้ามีการ Set จะไม่มีการทํา
Fragment ที่ Datagram นี้
เมื่อ Datagram ต ้องผ่าน NW ที่กําหนดค่า MTU น ้อยกว่าขนาด
ของ Datagram จะส่งผ่านไม่ได ้ และจะต ้องโยนทิ้ง
Bit 2: More Fragment(MF) จะ Set ถ ้า Datagram นี้
เป็น Fragment ยกเว ้น Fragment สุดท ้าย
ถ ้าไม่มีการทํา Fragment ส่วน Bit 2 นี้จะไม่ถูก Set เช่นกัน ซ ึ่ง
มีความหมายเดียวกับเป็น Fragment สุดท ้าย
Ch22: 22.15 Collecting The
Datagram Fragments
IP จะไม่ Guarantee การส่งข้อมูล
Fragment อาจหาย มี Error หรือถูกส่งไปในทิศทางที่ต่างกัน และ
มาถึงปลายทางอย่างไม่เป็นลําดับ
เราจะรู้ได้อย่างไรว่า Fragment ของแต่ละ Datagram
ได้ร ับครบแล้ว พร้อมจะประกอบเป็น Datagram เดิม
คืนมา
Bit ในส่วนของ ‘FLAG’ Field จะบอกว่านี่เป็น Fragment ให ้รอ
Fragment อื่นจนครบ และประกอบเป็น Datagram เดิมก่อนที่จะส่ง
ให ้ Layer บนต่อไป
ปลายทางจะใช ้ส่วนของ IDENTIFICATION Field รวมกับ Source IP Address เป็นตัวกําหนดว่า Fragment ที่ได ้อยู่ใน Datagram เดิมอะไร โดยที่ Fragment ของ Datagram เดียวกันจะมีค่า
‘IDENTIFICATION’ เหมือนกัน ส่วน Source IP Address จะบ่ง
บอกอีกทีให ้แน่ใจ เพราะแต่ละผู ้ส่งอาจจะใช ้ Identification เหมือนกัน
ส่วนของ ‘FRAGMENT OFFSET’ Field จะบ่งบอกว่า Fragment นี้
อยู่ส่วนใหนของ Datagram เดิม
Ch22: 22.16 Fragment Loss
Fragment ต้องมาครบจึงจะประกอบได้ ด ังน ั้นถ้ามี
Fragment Loss ปลายทางจะต้องเก็บ Fragment ที่
เหลือไว้จนกว่าจะครบ ซึ่งจะเกิด Delay
การเก็บ Fragment จะใช้ Memory และไม่สามารถ
เก็บได้ตลอดไป มิฉะน ั้น Resource ของ Host
ปลายทางจะไม่เหลือให้ทําอย่างอื่น
IP กําหนด Timer ชื่อ ‘Reassembly Timer’ ซึ่งถ้า
Timer Expire(หมดอายุ) ทุกๆ Fragment ในชุดของ
Datagram น ั้นจะถูกโยนทิ้ง
IP ไม่มี Mechanism สําหรับ Fragment Retransmission เนื่องจาก
Fragment กระทําที่กลางทาง
ที่จริงจะกระทําไม่ได ้ เพราะผู ้ส่งไม่รู ้ว่า Fragment มันแบ่งอย่างไร ที่
ส่วนใหนของ Datagram เดิม
ดังนั้นถ ้า Fragment Loss จะทําให ้ Timer Expire และจะลงเอย
ด ้วยการส่งทั้ง Datagram นั้นมาใหม่ (All-or-Nothing)
Ch22: 22.17 Fragmenting A
Fragment
เป็นไปได้ที่ Router ต ัวหนึ่งทําการ Fragment
Datagram ส่งไปใน Internet และ
Fragment น ั้นต้องผ่าน Network ที่มีค่า MTU
ตํ่ากว่าขนาดของ Fragment
เราสามารถทํา Fragment ของ Fragment กี่ระดับก็ได ้
Router จะมองไม่ออกว่านี่เป็น Fragment ของ
Fragment
การประกอบจะกระทําครั้งเดียวที่ปลายทาง
ไม่มีการประกอบจาก Sub-fragment เป็น Fragment ก่อน แล ้ว
จึงค่อยประกอบ Datagram
IP Fragmentation
10.7.8.9/20
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=0|L=2620
MTU 3000
NW
MTU 1000
1
1
MTU 1500
MTU 600
NW
NW
NW
MTU 1500
2
2
3
3
4
4
NW
5
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=0|LEN=996
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=122|LEN=996
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=244|LEN=668
200.35.4.12/26
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=0|LEN=596
Fragment
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=72|LEN=420
Reassemble
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=122|LEN=596
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=194|LEN=420
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=244|LEN=596
SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=316|LEN=92
End of Chapter 21-22
Homework II Due Next Week
Download HW2 (Week 4)
End of Week 4
Next, Week V: Chapter 23
Chapter 23: Supporting Protocol and
Technologies
ARP
ICMP
DHCP
NAT